Programmable processors operate according to a sequence of operations taken from a set of operations known as an instruction set. A program is usually written in a higher level source code, such as C, which is used to define the sequence of operations that are to be executed by the programmable processor. In other words, rather than writing the sequence of operations directly using operations from the instruction set, the high level language provides a more user friendly method of programming, which is then compiled into a set of executable operations taken from the instruction set.
The mapping between the high level source code and the instruction set does not have to be one-on-one. For example, an operation in the source code can be mapped onto several executable operations. Also, several operations in the source code can be mapped onto a single executable operation.
Programmable processors are widely used in digital signal processing, including image processing and 3D graphics. One operation that is carried during image processing is texture mapping, which involves a process known as resampling. Resampling is the process of minification (decimation) and magnification (interpolation), for example where a digital image is resampled to a different resolution.
Most texture mapping hardware is based on the principles of inverse texture mapping, whereby a prefilter of a pixel (in screen space) is mapped onto input samples (texels). While inverse texture mapping has the advantage of being simple to implement in hardware, it suffers from the disadvantages of either having poor quality (such as aliasing or blurry artefacts) or that the filters become very complicated.
An alternative to inverse texture mapping is forward texture mapping, whereby texels are mapped to screen space. A known circuit for performing forward texture mapping is described in “Resample hardware for 3D graphics”, Meinds & Barenbrug, Proceedings of Graphics Hardware 2002, pages 17-26, 2002. However, known methods of forward texture mapping such as this do not provide efficient image processing or use fully dedicated hardware.
The aim of the present invention is to provide a programmable processor and a new digital signal processing operation for performing digital resampling more efficiently on a programmable processor by performing a dedicated operation rather than executing separate (finer granularity) operations as carried out on a conventional programmable processor. More specifically, the present invention is concerned with a digital image processor for use with forward texture mapping.